package demo1208.am;

import java.util.Arrays;

/*
方法:实现一个功能的代码块.
格式:
修饰符 返回值类型 方法名(数据类型 参数1,数据类型 参数2,...){
  功能代码块;
  return 返回值;
}
修饰符:记住 public static
返回值类型:用于限定返回值的数据类型;

方法名:一个方法的名称;(一个单词全部小写,多个单词从第二个单词开始,
每一个单词的首字母大写)
功能代码块:实现功能的代码块
return 返回值:  return语句,结束方法,并且把返回值带给调用者.
数据类型 参数名1:方法中的参数,调用方法,必须给方法上的参数赋值.

方法的位置:类中方法外;
方法的调用:方法名(给方法上的参数赋的值);
当一个方法不需要返回值类型:方法的返回值类型写成void.

方法的返回值类型为void,只能单独的调用.

方法的传递只有值传递.
 */
public class Demo_02 {
    /**
     * 文档注释
     * 求两个int值的和
     *
     * @param a
     * @param b
     * @return
     */
    public static int sum(int a, int b) {
        int s = a + b;
        return s;
    }

    /**
     * 求数组中的最大值.
     *
     * @param arr
     * @return
     */
    public static int max(int[] arr) {
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }
        return max;
    }

    public static void main(String[] args) {

        int num = 1;
        change(num);//change(10)
        System.out.println(num);//1

        int[] arr = {1, 23, 4};
        change1(arr);
        System.out.println(Arrays.toString(arr));
    }

    public static void change1(int[] arr) {
        arr[0] = 100;
    }

    public static void change(int num) {
        num = 10;
    }

    public static void demo() {
        //方法的传递只有值传递.
        int num1 = 12;
        int s1 = sum(num1, 3);
        System.out.println(s1);
        int[] arr1 = {1, 23, 45, 6};
        System.out.println(max(arr1));
    }

}
